package com.front.service.impl;

import com.aaa.vo.PagePlugin;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.front.entity.TbOrder;
import com.front.mapper.TbOrderMapper;
import com.front.service.ITbOrderService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author xyw
 * @since 2023-08-10
 */
@Service
public class TbOrderServiceImpl extends ServiceImpl<TbOrderMapper, TbOrder> implements ITbOrderService {

    /**
     * 服务对象
     */
    @Resource
    private TbOrderMapper tbOrderDao;


    /**
     * 分页查询
     * @param pagePlugin 筛选条件
     * @return 查询结果
     */
    @Override
    public IPage<TbOrder> queryPage(PagePlugin<TbOrder> pagePlugin) {
        // 分页参数设置
        Page<TbOrder> page = new Page<>();
        // 设置当前页码  第几页
        page.setCurrent(pagePlugin.getPageNo());
        // 设置每页显示条数
        page.setSize(pagePlugin.getPageSize());
        // 查询封装类
        QueryWrapper queryWrapper = new QueryWrapper();
        // 使用加各种参数  判断某字符串是否为空
        if (pagePlugin.getData() != null) {
            // 例如 queryWrapper.like(null!=语句,"列名",pagePingin.getData.属性名)-> if(属性名!=null){ 列名 like "%属性名%"
            queryWrapper.like(null != pagePlugin.getData().getOrderId(), "orderid", pagePlugin.getData().getOrderId());
        }
        return this.tbOrderDao.selectPage(page, queryWrapper);
    }

    @Override
    public List<TbOrder> queryByIdCode(Integer userId, Integer orderStatusCode) {
        return this.tbOrderDao.queryByIdCode(userId, orderStatusCode);
    }

    @Override
    public IPage<TbOrder> queryMune(PagePlugin<TbOrder> pagePlugin) {
        // 分页参数设置
        Page<TbOrder> page = new Page<>();
        // 设置当前页码  第几页
        page.setCurrent(pagePlugin.getPageNo());
        // 设置每页显示条数
        page.setSize(pagePlugin.getPageSize());
        TbOrder tbOrder = pagePlugin.getData();
        Integer orderStatusCode = tbOrder.getPayStatusCode();
        String tcount = tbOrder.getTcount();
        return tbOrderDao.queryMune(page, orderStatusCode, tcount);
    }

    @Override
    public IPage<TbOrder> queryInstance(PagePlugin<TbOrder> pagePlugin) {
        return null;
    }
//    @Override
//    public IPage<TbOrder> queryInstance(PagePlugin<TbOrder> pagePlugin) {
//        // 分页参数设置
//        Page<TbCommodity> page = new Page<>();
//        // 设置当前页码  第几页
//        page.setCurrent(pagePlugin.getPageNo());
//        // 设置每页显示条数
//        page.setSize(pagePlugin.getPageSize());
//
//        // 查询封装类
//        QueryWrapper queryWrapper = new QueryWrapper();
//        queryWrapper.orderByDesc("prompt");
//        // 查询封装类
//        return this.tbOrderDao.queryInstance(pagePlugin);
//    }
}
